{"cells":[{"cell_type":"markdown","metadata":{},"source":["# HW3 - RNN应用 - 金融新闻情感分析"]},{"cell_type":"code","execution_count":1,"metadata":{"execution":{"iopub.execute_input":"2025-04-22T09:00:55.251692Z","iopub.status.busy":"2025-04-22T09:00:55.251058Z","iopub.status.idle":"2025-04-22T09:00:55.255998Z","shell.execute_reply":"2025-04-22T09:00:55.255229Z","shell.execute_reply.started":"2025-04-22T09:00:55.251667Z"},"trusted":true},"outputs":[],"source":["import torch\n","import torch.nn as nn\n","from torch.utils.data import DataLoader, Dataset\n","from sklearn.model_selection import train_test_split\n","from sklearn.preprocessing import LabelEncoder\n","from torch.nn.utils.rnn import pad_sequence\n","from collections import Counter\n","import matplotlib.pyplot as plt\n","import pandas as pd\n","import re\n","from tqdm import tqdm"]},{"cell_type":"markdown","metadata":{},"source":["## 文本预处理 ##\n","核心步骤：将原始新闻文本变成模型可以处理的数字化格式，通过分词（tokenize）和构建词汇表（build_vocab）完成。"]},{"cell_type":"code","execution_count":2,"metadata":{"execution":{"iopub.execute_input":"2025-04-22T09:00:57.235109Z","iopub.status.busy":"2025-04-22T09:00:57.234834Z","iopub.status.idle":"2025-04-22T09:00:57.240958Z","shell.execute_reply":"2025-04-22T09:00:57.240092Z","shell.execute_reply.started":"2025-04-22T09:00:57.235089Z"},"trusted":true},"outputs":[],"source":["# 分词\n","def tokenize(text):\n","    return re.findall(r'\\b\\w+\\b', text.lower())\n","\n","# 构建词汇表\n","def build_vocab(tokenized_texts, min_freq=1):\n","    counter = Counter(token for text in tokenized_texts for token in text)\n","    vocab = {\"<pad>\": 0, \"<unk>\": 1}\n","    for token, freq in counter.items():\n","        if freq >= min_freq:\n","            vocab[token] = len(vocab)\n","    return vocab\n","\n","# 对每个 batch 的样本文本进行 padding，使它们具有相同长度\n","def collate_fn(batch):\n","    texts, labels = zip(*batch)\n","    texts = pad_sequence(texts, batch_first=True, padding_value=0)\n","    labels = torch.tensor(labels, dtype=torch.long)\n","    return texts, labels"]},{"cell_type":"code","execution_count":3,"metadata":{"execution":{"iopub.execute_input":"2025-04-22T08:49:52.214581Z","iopub.status.busy":"2025-04-22T08:49:52.214099Z","iopub.status.idle":"2025-04-22T08:49:52.220191Z","shell.execute_reply":"2025-04-22T08:49:52.219453Z","shell.execute_reply.started":"2025-04-22T08:49:52.214556Z"},"trusted":true},"outputs":[{"data":{"text/plain":["['according',\n"," 'to',\n"," 'gran',\n"," 'the',\n"," 'company',\n"," 'has',\n"," 'no',\n"," 'plans',\n"," 'to',\n"," 'move',\n"," 'all',\n"," 'production',\n"," 'to',\n"," 'russia',\n"," 'although',\n"," 'that',\n"," 'is',\n"," 'where',\n"," 'the',\n"," 'company',\n"," 'is',\n"," 'growing']"]},"execution_count":3,"metadata":{},"output_type":"execute_result"}],"source":["text = \"According to Gran , the company has no plans to move all production to Russia , although that is where the company is growing .\"\n","tokenize(text)"]},{"cell_type":"code","execution_count":4,"metadata":{"execution":{"iopub.execute_input":"2025-04-22T08:49:53.412964Z","iopub.status.busy":"2025-04-22T08:49:53.412265Z","iopub.status.idle":"2025-04-22T08:49:53.417939Z","shell.execute_reply":"2025-04-22T08:49:53.417266Z","shell.execute_reply.started":"2025-04-22T08:49:53.412939Z"},"trusted":true},"outputs":[{"data":{"text/plain":["{'<pad>': 0, '<unk>': 1, 'the': 2, 'company': 3}"]},"execution_count":4,"metadata":{},"output_type":"execute_result"}],"source":["texts = [['the', 'company', 'has'], ['the', 'plan'], ['company', 'growth']]\n","build_vocab(texts, min_freq=2)"]},{"cell_type":"markdown","metadata":{},"source":["## 定义数据集类 ##"]},{"cell_type":"code","execution_count":30,"metadata":{"execution":{"iopub.execute_input":"2025-04-22T09:00:59.770341Z","iopub.status.busy":"2025-04-22T09:00:59.769690Z","iopub.status.idle":"2025-04-22T09:00:59.776505Z","shell.execute_reply":"2025-04-22T09:00:59.775607Z","shell.execute_reply.started":"2025-04-22T09:00:59.770307Z"},"trusted":true},"outputs":[],"source":["class NewsDataset(Dataset):\n","    def __init__(self, texts, labels, vocab, label_encoder):\n","        self.texts = [torch.tensor([vocab.get(token, vocab[\"<unk>\"]) for token in text]) for text in texts]\n","        self.labels = torch.tensor(label_encoder.transform(labels))\n","\n","    def __len__(self):\n","        return len(self.labels)\n","\n","    def __getitem__(self, idx):\n","        return self.texts[idx], self.labels[idx]"]},{"cell_type":"markdown","metadata":{},"source":["## 定义模型 ##"]},{"cell_type":"code","execution_count":31,"metadata":{"execution":{"iopub.execute_input":"2025-04-22T09:01:01.623649Z","iopub.status.busy":"2025-04-22T09:01:01.623370Z","iopub.status.idle":"2025-04-22T09:01:01.629249Z","shell.execute_reply":"2025-04-22T09:01:01.628420Z","shell.execute_reply.started":"2025-04-22T09:01:01.623631Z"},"trusted":true},"outputs":[],"source":["class BiGRUModel(nn.Module):\n","    def __init__(self, vocab_size, embed_dim, hidden_size, num_layers, num_classes):\n","        super().__init__()\n","        self.embedding = nn.Embedding(vocab_size, embed_dim, padding_idx=0) # 词表随机初始化\n","        self.gru = nn.GRU(embed_dim, hidden_size, num_layers=num_layers, batch_first=True, bidirectional=True)\n","        self.fc = nn.Linear(hidden_size * 2, num_classes)\n","        self.dropout = nn.Dropout(0.5)\n","        \n","    def forward(self, x):\n","        embedded = self.embedding(x)\n","        _, h = self.gru(embedded)\n","        h = torch.cat((h[-2], h[-1]), dim=1)\n","        h = self.dropout(h)\n","        return self.fc(h)"]},{"cell_type":"markdown","metadata":{},"source":["## 模型训练 ##"]},{"cell_type":"code","execution_count":32,"metadata":{"execution":{"iopub.execute_input":"2025-04-22T09:01:03.662424Z","iopub.status.busy":"2025-04-22T09:01:03.661756Z","iopub.status.idle":"2025-04-22T09:01:03.673446Z","shell.execute_reply":"2025-04-22T09:01:03.672659Z","shell.execute_reply.started":"2025-04-22T09:01:03.662406Z"},"trusted":true},"outputs":[],"source":["##################################################\n","# 请勿修改此单元格中的代码\n","##################################################\n","\n","class Accumulator:\n","    def __init__(self, n):\n","        self.data = [0.0] * n\n","\n","    def add(self, *args):\n","        self.data = [a + float(b) for a, b in zip(self.data, args)]\n","\n","    def reset(self):\n","        self.data = [0.0] * len(self.data)\n","\n","    def __getitem__(self, idx):\n","        return self.data[idx]\n","\n","def accuracy(y_hat, y_true):\n","    y_pred = y_hat.argmax(dim=1)\n","    return (y_pred == y_true).float().mean().item()\n","\n","def train_epoch(net, train_iter, loss_fn, optimizer):\n","    net.train()\n","    device = next(net.parameters()).device\n","    metrics = Accumulator(3)\n","    for X, y in train_iter:\n","        X, y = X.to(device), y.to(device)\n","        optimizer.zero_grad()\n","        y_hat = net(X)\n","        loss = loss_fn(y_hat, y)\n","        loss.backward()\n","        optimizer.step()\n","        metrics.add(loss.item() * len(y), accuracy(y_hat, y) * len(y), len(y))\n","    return metrics[0] / metrics[2], metrics[1] / metrics[2]\n","\n","@torch.no_grad()\n","def eval_model(net, test_iter, loss_fn):\n","    net.eval()\n","    device = next(net.parameters()).device\n","    metrics = Accumulator(3)\n","    for X, y in test_iter:\n","        X, y = X.to(device), y.to(device)\n","        y_hat = net(X)\n","        loss = loss_fn(y_hat, y)\n","        metrics.add(loss.item() * len(y), accuracy(y_hat, y) * len(y), len(y))\n","    return metrics[0] / metrics[2], metrics[1] / metrics[2]\n","\n","def plot_learning_curves(train_losses, test_losses, train_accs, test_accs):\n","    fig, axs = plt.subplots(1, 2, figsize=(12, 4))\n","    axs[0].plot(train_losses, label='Train Loss')\n","    axs[0].plot(test_losses, label='Test Loss')\n","    axs[0].set_xlabel('Epoch')\n","    axs[0].set_ylabel('Loss')\n","    axs[0].legend()\n","    axs[1].plot(train_accs, label='Train Accuracy')\n","    axs[1].plot(test_accs, label='Test Accuracy')\n","    axs[1].axhline(y=0.7, color='b', linestyle='--')\n","    axs[1].set_xlabel('Epoch')\n","    axs[1].set_ylabel('Accuracy')\n","    axs[1].legend()\n","    plt.show()"]},{"cell_type":"code","execution_count":33,"metadata":{"execution":{"iopub.execute_input":"2025-04-22T09:01:07.089321Z","iopub.status.busy":"2025-04-22T09:01:07.089058Z","iopub.status.idle":"2025-04-22T09:01:14.803172Z","shell.execute_reply":"2025-04-22T09:01:14.802498Z","shell.execute_reply.started":"2025-04-22T09:01:07.089302Z"},"trusted":true},"outputs":[{"name":"stdout","output_type":"stream","text":["Epoch 1: Train Loss 0.9470, Train Acc 0.5777, Test Loss 0.8905, Test Acc 0.6010\n","Epoch 2: Train Loss 0.8807, Train Acc 0.6102, Test Loss 0.8738, Test Acc 0.6196\n","Epoch 3: Train Loss 0.8624, Train Acc 0.6275, Test Loss 0.8542, Test Acc 0.6278\n","Epoch 4: Train Loss 0.8382, Train Acc 0.6385, Test Loss 0.8334, Test Acc 0.6474\n","Epoch 5: Train Loss 0.8151, Train Acc 0.6468, Test Loss 0.8085, Test Acc 0.6598\n","Epoch 6: Train Loss 0.7781, Train Acc 0.6705, Test Loss 0.7970, Test Acc 0.6711\n","Epoch 7: Train Loss 0.7407, Train Acc 0.6891, Test Loss 0.7642, Test Acc 0.6639\n","Epoch 8: Train Loss 0.6990, Train Acc 0.7056, Test Loss 0.7445, Test Acc 0.6804\n","Epoch 9: Train Loss 0.6583, Train Acc 0.7307, Test Loss 0.7352, Test Acc 0.6814\n","Epoch 10: Train Loss 0.6123, Train Acc 0.7523, Test Loss 0.7262, Test Acc 0.7124\n","Epoch 11: Train Loss 0.5708, Train Acc 0.7709, Test Loss 0.7211, Test Acc 0.7052\n","Epoch 12: Train Loss 0.5180, Train Acc 0.8001, Test Loss 0.7168, Test Acc 0.7227\n","Epoch 13: Train Loss 0.4794, Train Acc 0.8209, Test Loss 0.7296, Test Acc 0.7227\n","Epoch 14: Train Loss 0.4322, Train Acc 0.8421, Test Loss 0.7488, Test Acc 0.7052\n","Epoch 15: Train Loss 0.3968, Train Acc 0.8563, Test Loss 0.7299, Test Acc 0.7247\n","Epoch 16: Train Loss 0.3532, Train Acc 0.8728, Test Loss 0.7658, Test Acc 0.7361\n","Epoch 17: Train Loss 0.3293, Train Acc 0.8865, Test Loss 0.7530, Test Acc 0.7371\n","Epoch 18: Train Loss 0.2831, Train Acc 0.9082, Test Loss 0.8064, Test Acc 0.7124\n","Epoch 19: Train Loss 0.2583, Train Acc 0.9192, Test Loss 0.8228, Test Acc 0.7268\n","Epoch 20: Train Loss 0.2338, Train Acc 0.9283, Test Loss 0.8444, Test Acc 0.7320\n"]},{"data":{"image/png":"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S/WxSZMmRlxcXIl1V/qu2aIvqamp5X531q9fX25frvYZre5+XLhwwbjzzjuNhg0bGi4uLkaTJk2MJ598slQCrgljctncuXMNDw8P49y5c2Uewx7GRGqemp7vlevtazz+W03M98r1yvW26stltT3XmwzDMK71LLyIiIiIiIiIVB3dky4iIiIiIiJiJ1Ski4iIiIiIiNgJFekiIiIiIiIidkJFuoiIiIiIiIidUJEuIiIiIiIiYidUpIuIiIiIiIjYCRXpIiIiIiIiInZCRbqIVDuTycSyZctsHYaIiIjcIMr1ItdORbpILfPYY49hMplKLf3797d1aCIiIlIFlOtFajZnWwcgItWvf//+LFiwoMQ6Nzc3G0UjIiIiVU25XqTm0pl0kVrIzc2NwMDAEkv9+vWBosvTZs+ezYABA/Dw8KBZs2YsXbq0xP67d++mT58+eHh40KBBA5566inOnz9fos38+fNp3749bm5uBAUFMXbs2BLbMzIyuPfee6lTpw4tW7Zk+fLlN7bTIiIitYhyvUjNpSJdREqZPHky999/P7t27WLo0KE8/PDDJCcnA5CTk0O/fv2oX78+W7duZcmSJaxdu7ZEYp49ezZjxozhqaeeYvfu3SxfvpwWLVqU+Bkvv/wyDz30ED///DN33XUXQ4cO5ezZs9XaTxERkdpKuV7EjhkiUquMGDHCcHJyMjw9PUssr732mmEYhgEYzzzzTIl9IiMjjVGjRhmGYRh/+9vfjPr16xvnz58v3r5ixQrDbDYbFovFMAzDCA4ONl566aVyYwCMP//5z8Wvz58/bwDGd999V2X9FBERqa2U60VqNt2TLlIL3X777cyePbvEOl9f3+J/R0VFldgWFRXFzp07AUhOTqZz5854enoWb+/ZsydWq5X9+/djMpk4efIkffv2vWIMnTp1Kv63p6cnXl5epKenX2uXRERE5L8o14vUXCrSRWohT0/PUpekVRUPD48KtXNxcSnx2mQyYbVab0RIIiIitY5yvUjNpXvSRaSUzZs3l3rdtm1bANq2bcuuXbvIyckp3r5p0ybMZjOtW7emXr16hIWFER8fX60xi4iISMUp14vYL51JF6mF8vLysFgsJdY5Ozvj5+cHwJIlS+jWrRu33HILn376KUlJSXz44YcADB06lLi4OEaMGMHUqVM5ffo048aNY9iwYQQEBAAwdepUnnnmGfz9/RkwYADZ2dls2rSJcePGVW9HRUREainlepGaS0W6SC20atUqgoKCSqxr3bo1+/btA4pmY/38888ZPXo0QUFBLFq0iHbt2gFQp04dVq9ezfjx4+nevTt16tTh/vvv59133y0+1ogRI8jNzeW9997jhRdewM/PjwceeKD6OigiIlLLKdeL1FwmwzAMWwchIvbDZDLx9ddfM3jwYFuHIiIiIjeAcr2IfdM96SIiIiIiIiJ2QkW6iIiIiIiIiJ3Q5e4iIiIiIiIidkJn0kVERERERETshIp0ERERERERETuhIl1ERERERETETqhIFxEREREREbETKtJFRERERERE7ISKdBERERERERE7oSJdRERERERExE6oSBcRERERERGxEyrSRUREREREROzE/wPBcf1/5ushNwAAAABJRU5ErkJggg==","text/plain":["<Figure size 1200x400 with 2 Axes>"]},"metadata":{},"output_type":"display_data"}],"source":["# 分词与词表构建\n","df = pd.read_csv(\"Financial_News.csv\", header=None, delimiter=',', names=[\"label\", \"text\"], encoding='latin-1')\n","tokenized_texts = [tokenize(text) for text in df[\"text\"]]\n","label_encoder = LabelEncoder()\n","label_encoder.fit(df[\"label\"])\n","vocab = build_vocab(tokenized_texts, min_freq=10)\n","\n","# 划分数据集\n","X_train, X_test, y_train, y_test = train_test_split(tokenized_texts, df[\"label\"], test_size=0.2, stratify=df[\"label\"], random_state=42)\n","train_dataset = NewsDataset(X_train, y_train, vocab, label_encoder)\n","test_dataset = NewsDataset(X_test, y_test, vocab, label_encoder)\n","trainloader = DataLoader(train_dataset, batch_size=64, shuffle=True, collate_fn=collate_fn)\n","testloader = DataLoader(test_dataset, batch_size=64, collate_fn=collate_fn)\n","\n","# 模型定义\n","device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n","model = BiGRUModel(len(vocab), embed_dim=200, hidden_size=128, num_layers=2, num_classes=3).to(device)\n","loss_fn = nn.CrossEntropyLoss()\n","optimizer = torch.optim.Adam(model.parameters(), lr=1e-4)\n","\n","# 训练与评估\n","epochs = 20\n","train_losses, test_losses, train_accs, test_accs = [], [], [], []\n","for epoch in range(epochs):\n","    train_loss, train_acc = train_epoch(model, trainloader, loss_fn, optimizer)\n","    test_loss, test_acc = eval_model(model, testloader, loss_fn)\n","    train_losses.append(train_loss)\n","    test_losses.append(test_loss)\n","    train_accs.append(train_acc)\n","    test_accs.append(test_acc)\n","    print(f\"Epoch {epoch+1}: Train Loss {train_loss:.4f}, Train Acc {train_acc:.4f}, Test Loss {test_loss:.4f}, Test Acc {test_acc:.4f}\")\n","\n","# 可视化\n","plot_learning_curves(train_losses, test_losses, train_accs, test_accs)\n","\n"]},{"cell_type":"code","execution_count":34,"metadata":{"execution":{"iopub.execute_input":"2025-04-22T09:03:06.567123Z","iopub.status.busy":"2025-04-22T09:03:06.566839Z","iopub.status.idle":"2025-04-22T09:03:06.571426Z","shell.execute_reply":"2025-04-22T09:03:06.570619Z","shell.execute_reply.started":"2025-04-22T09:03:06.567102Z"},"trusted":true},"outputs":[{"name":"stdout","output_type":"stream","text":["0.737113402307648\n"]}],"source":["print(max(test_accs))"]},{"cell_type":"code","execution_count":null,"metadata":{"trusted":true},"outputs":[],"source":[]},{"cell_type":"code","execution_count":null,"metadata":{"trusted":true},"outputs":[],"source":[]}],"metadata":{"kaggle":{"accelerator":"gpu","dataSources":[{"datasetId":7218642,"sourceId":11511798,"sourceType":"datasetVersion"}],"dockerImageVersionId":31011,"isGpuEnabled":true,"isInternetEnabled":true,"language":"python","sourceType":"notebook"},"kernelspec":{"display_name":"Python 3 (ipykernel)","language":"python","name":"python3"},"language_info":{"codemirror_mode":{"name":"ipython","version":3},"file_extension":".py","mimetype":"text/x-python","name":"python","nbconvert_exporter":"python","pygments_lexer":"ipython3","version":"3.9.13"}},"nbformat":4,"nbformat_minor":4}
